SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TCCANJ_CLIE_D01]      
/*-------------------------------------------------------*/      
/*---Empresa              : OFISIS S.A.                --*/      
/*---Cliente              : OFISIS S.A.                --*/      
/*---Sistema              : Tesoreria                  --*/      
/*---M÷dulo               : Empresa                    --*/      
/*---Programa             : Eliminacion de Documentos  --*/      
/*                          Generados x Letras         --*/      
/*                          Por Canje                  --*/       
/*---Script               : TCCANJ_CLIE_D01.sql        --*/      
/*---Nombre SP            : SP_TCCANJ_CLIE_D01         --*/      
/*---Desarrollado por     : Denis Villacr's            --*/      
/*---Fecha Creaci÷n       : 07/07/2000                 --*/      
/*---Base Datos           : Microsoft Sql Server       --*/      
/*---Versi÷n              : 7.0                        --*/      
/*---Invoca a SP          :                            --*/      
/*-------------------------------------------------------*/      
      
/*-------------------------------------------------------*/      
/*---Modificado 1 por     : Maribel Julca Rodriguez    --*/      
/*---Fecha Modificaci©n   : 21/04/2005                 --*/       
/*---Detalle Modificaci©n : ingreso de los campos CO_USUA_CREA, CO_USUA_MODI  --*/      
/*-------------------------------------------------------*/      
    
/*-------------------------------------------------------*/      
/*---Modificado 2 por     : Javier Flores        --*/      
/*---Fecha Modificaci©n   : 17/07/2007                 --*/       
/*---Detalle Modificaci©n : Se puso en el where del delete de la TMLETR_CLIE el campo FE_CANJ  --*/      
  
/*-------------------------------------------------------*/      
/*---Modificado 2 por     : Miguel Carrasco        --*/      
/*---Fecha Modificaci©n   : 15/02/2011                 --*/       
/*---Detalle Modificaci©n : Logica para soltar letras emitidas --*/      
    
    
/*-------------------------------------------------------*/     
/*-------------------------------------------------------*/      
/*---Comentarios                                       --*/      
/*---                                                  --*/      
/*---                                                  --*/      
/*-------------------------------------------------------*/      
      
/*-------------------------------------------------------*/      
/*---Drop Proc SP_TCCANJ_CLIE_D01                      --*/      
/*---Grant all on SP_TCCANJ_CLIE_D01 to public         --*/       
/*---SP_TCCANJ_CLIE_D01                              --*/      
/*-------------------------------------------------------*/      
 @ISCO_EMPR      TD_VC_002,       
 @ISCO_USUA_MODI TD_VC_008_USUA,      
 @ISCO_CLIE      TD_VC_020,      
 @ISNU_CANJ      TD_VC_008,      
 @ISCO_UNID_CONC TD_VC_003,      
 @IDFE_CANJ  TD_DT_001    
 As    
Declare      
 @VSCO_ESTA_DOCU   TD_VC_003,      
 @VSCO_ESDO_TMLE   TD_VC_003,      
 @VSNU_ASTO  TD_VC_008      
      
      
  Begin Tran SP_TCCANJ_PROV_D01      
      
    Select @VSCO_ESTA_DOCU = CO_ESTA_DOCU From TTTIES_DOCU      
     Where ST_ESDO_0001 = 'S'      
      
     Update TMDOCU_CLIE       
     Set TMDOCU_CLIE.CO_ESTA_DOCU = @VSCO_ESTA_DOCU,      
     TMDOCU_CLIE.NU_CANJ = NULL,      
     TMDOCU_CLIE.IM_PAGA = TMDOCU_CLIE.IM_PAGA - TDCANJ_CLIE.IM_CANJ_MDOC,       
     TMDOCU_CLIE.FE_USUA_MODI = Getdate(),       
     TMDOCU_CLIE.CO_USUA_MODI = @ISCO_USUA_MODI  
     FROM TDCANJ_CLIE       
     Where             
     TDCANJ_CLIE.CO_EMPR = @ISCO_EMPR      
     And TDCANJ_CLIE.CO_UNID_CONC = @ISCO_UNID_CONC    
     AND TDCANJ_CLIE.CO_CLIE = @ISCO_CLIE           
     AND TDCANJ_CLIE.NU_CANJ = @ISNU_CANJ      
     AND TDCANJ_CLIE.FE_CANJ = @IDFE_CANJ      
     AND TDCANJ_CLIE.CO_EMPR = TMDOCU_CLIE.CO_EMPR    
     AND TDCANJ_CLIE.CO_CLIE=  TMDOCU_CLIE.CO_CLIE  
     AND TDCANJ_CLIE.CO_TIPO_DOCU = TMDOCU_CLIE.CO_TIPO_DOCU      
     AND TDCANJ_CLIE.NU_DOCU_CLIE = TMDOCU_CLIE.NU_DOCU_CLIE        
  
  
  
    /* FROM   TDCANJ_CLIE       
      Where TMDOCU_CLIE.CO_EMPR = @ISCO_EMPR      
     And TMDOCU_CLIE.CO_CLIE = @ISCO_CLIE      
     And TMDOCU_CLIE.NU_CANJ = @ISNU_CANJ      
     AND TDCANJ_CLIE.CO_EMPR = @ISCO_EMPR      
     And TDCANJ_CLIE.CO_UNID_CONC = @ISCO_UNID_CONC      
            AND TDCANJ_CLIE.CO_CLIE=  @ISCO_CLIE      
            AND TDCANJ_CLIE.NU_CANJ = @ISNU_CANJ      
            AND TDCANJ_CLIE.FE_CANJ = @IDFE_CANJ      
            AND TDCANJ_CLIE.CO_TIPO_DOCU = TMDOCU_CLIE.CO_TIPO_DOCU      
            AND TDCANJ_CLIE.NU_DOCU_CLIE = TMDOCU_CLIE.NU_DOCU_CLIE  */  
    
   
  
    If @@error <> 0      
       Begin      
         Rollback tran      
         Return      
       End      
      
      
 Select @VSCO_ESDO_TMLE = CO_ESTA_DOCU From TTTIES_DOCU      
 Where  ST_ESDO_0007 = 'S'      
      
  
    
   
 Update  TMLETR_CLIE      
 Set  TMLETR_CLIE.CO_ESTA_DOCU = @VSCO_ESDO_TMLE,      
 TMLETR_CLIE.NU_CANJ = NULL,      
 TMLETR_CLIE.IM_PAGA = TMLETR_CLIE.IM_PAGA - TDCANJ_CLIE.IM_CANJ_MDOC,      
 TMLETR_CLIE.FE_USUA_MODI = Getdate(),       
 TMLETR_CLIE.CO_USUA_MODI = @ISCO_USUA_MODI      
 FROM  TDCANJ_CLIE      
 Where    
 TDCANJ_CLIE.CO_EMPR = @ISCO_EMPR      
 And TDCANJ_CLIE.CO_UNID_CONC = @ISCO_UNID_CONC  
 AND TDCANJ_CLIE.CO_CLIE=  @ISCO_CLIE      
 AND TDCANJ_CLIE.NU_CANJ = @ISNU_CANJ       
 AND TDCANJ_CLIE.FE_CANJ = @IDFE_CANJ  
 And TMLETR_CLIE.NU_CANJ Is Not Null       
 And TDCANJ_CLIE.CO_EMPR = TMLETR_CLIE.CO_EMPR          
 And TDCANJ_CLIE.CO_TIPO_DOCU = 'LET'      
 And TDCANJ_CLIE.CO_CLIE = TMLETR_CLIE.CO_CLIE    
 And TDCANJ_CLIE.NU_DOCU_CLIE = TMLETR_CLIE.NU_LETR_CLIE    
  
 /*FROM  TDCANJ_CLIE      
 Where  TMLETR_CLIE.CO_EMPR = @ISCO_EMPR      
 And TMLETR_CLIE.CO_CLIE = @ISCO_CLIE      
 And TDCANJ_CLIE.CO_EMPR = TMLETR_CLIE.CO_EMPR      
 And TDCANJ_CLIE.CO_UNID_CONC = @ISCO_UNID_CONC      
 AND TDCANJ_CLIE.CO_CLIE=  @ISCO_CLIE      
 AND TDCANJ_CLIE.NU_CANJ = @ISNU_CANJ       
 AND TDCANJ_CLIE.FE_CANJ = @IDFE_CANJ      
 And TDCANJ_CLIE.CO_TIPO_DOCU = 'LET'      
 And TMLETR_CLIE.NU_CANJ Is Not Null        
 And TDCANJ_CLIE.NU_DOCU_CLIE = TMLETR_CLIE.NU_LETR_CLIE  */    
      
  
  
    
      
      
    If @@error <> 0      
       Begin      
  Rollback tran      
         Return      
       End      
      
 Insert Into TMREGI_ELIM (CO_EMPR, CO_TABL_ORIG, DE_TABL_ORIG,      
           CO_CLAV_TAOR,CO_USUA_CREA,FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI)       
          
 select @ISCO_EMPR, 85, 'MAESTRO LETRAS CLIENTES',      
        RTRIM( @ISCO_EMPR )+ REPLICATE('#', 2-LEN(RTRIM(@ISCO_EMPR))) +       
        RTRIM( NU_LETR_CLIE )+ REPLICATE('#', 15-LEN(RTRIM(NU_LETR_CLIE))), @ISCO_USUA_MODI,GETDATE(), @ISCO_USUA_MODI, GETDATE()       
 From   TMLETR_CLIE      
 Where  CO_EMPR = @ISCO_EMPR      
        And CO_CLIE = @ISCO_CLIE      
        And NU_CANJ = @ISNU_CANJ      
      
   If @@error <> 0      
      Begin      
        Rollback tran      
        Return      
      End          
      
      
/*      
    Delete TMLETR_CLIE      
     Where CO_EMPR = @ISCO_EMPR      
           And CO_CLIE = @ISCO_CLIE      
    And NU_CANJ = @ISNU_CANJ       
*/      
      
  /*   Delete  TMLETR_CLIE      
      Where  TMLETR_CLIE.CO_EMPR = @ISCO_EMPR      
            And TMLETR_CLIE.CO_CLIE = @ISCO_CLIE      
            And TMLETR_CLIE.NU_CANJ = @ISNU_CANJ      
  And Exists (Select  T1.CO_CLIE      
       From    TDCANJ_CLIE T1      
       Where   T1.CO_EMPR = @ISCO_EMPR      
        And TMLETR_CLIE.CO_EMPR = T1.CO_EMPR      
        And TMLETR_CLIE.CO_CLIE = T1.CO_CLIE      
        And TMLETR_CLIE.NU_CANJ = T1.NU_CANJ      
        And TMLETR_CLIE.NU_LETR_CLIE = T1.NU_LETR_CLIE)  */    
      
    Delete  TMLETR_CLIE      
      Where  TMLETR_CLIE.CO_EMPR = @ISCO_EMPR      
      And TMLETR_CLIE.CO_CLIE = @ISCO_CLIE      
      And TMLETR_CLIE.NU_CANJ = @ISNU_CANJ      
      And Exists (Select  T1.CO_CLIE      
       From    TDCANJ_CLIE T1  , TCCANJ_CLIE T2    
       Where   T1.CO_EMPR = @ISCO_EMPR            And TMLETR_CLIE.CO_EMPR = T1.CO_EMPR      
      And TMLETR_CLIE.CO_CLIE = T1.CO_CLIE      
      And TMLETR_CLIE.NU_CANJ = T1.NU_CANJ      
      And TMLETR_CLIE.NU_LETR_CLIE = T1.NU_LETR_CLIE    
      And T1.CO_EMPR = T2.CO_EMPR    
      And T1.CO_UNID_CONC = T2.CO_UNID_CONC    
      And T1.CO_CLIE = T2.CO_CLIE    
      And T1.NU_CANJ = T2.NU_CANJ    
             And T2.FE_CANJ = @IDFE_CANJ      
      And T1.FE_CANJ = T2.FE_CANJ)      
      
  
  
  
  
     If @@error <> 0      
       Begin      
         Rollback tran      
         Return      
       End          
      
      
 Insert Into  TMREGI_ELIM (CO_EMPR, CO_TABL_ORIG, DE_TABL_ORIG,      
           CO_CLAV_TAOR, CO_USUA_CREA,FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI )      
    select @ISCO_EMPR, 84, 'DETALLE CANJE CLIENTES',      
        RTRIM( @ISCO_EMPR )+ REPLICATE('#', 2-LEN(RTRIM(@ISCO_EMPR)))+       
        RTRIM( @ISCO_CLIE )+ REPLICATE('#', 20-LEN(RTRIM(@ISCO_CLIE)))+      
        RTRIM( @ISNU_CANJ )+ REPLICATE('#', 8-LEN(RTRIM(@ISNU_CANJ)))+      
        RTRIM( NU_SECU_CANJ )+ REPLICATE('#', 1-LEN(RTRIM(NU_SECU_CANJ))), @ISCO_USUA_MODI,GETDATE(), @ISCO_USUA_MODI, GETDATE()      
   From  TDCANJ_CLIE      
 Where  CO_EMPR = @ISCO_EMPR      
 And CO_UNID_CONC = @ISCO_UNID_CONC      
        AND CO_CLIE=  @ISCO_CLIE      
        AND NU_CANJ = @ISNU_CANJ      
        AND FE_CANJ = @IDFE_CANJ      
   If @@error <> 0      
      Begin      
        Rollback tran      
        Return      
      End          
      
 Delete TDDISC_CCOS      
 From TDDISC_CCOS T1, TDCANJ_CLIE T2      
 Where T2.CO_EMPR = @ISCO_EMPR      
 And T2.CO_UNID_CONC = @ISCO_UNID_CONC      
 AND T2.CO_CLIE=  @ISCO_CLIE      
 AND T2.NU_CANJ = @ISNU_CANJ      
 AND T2.FE_CANJ = @IDFE_CANJ      
 AND T2.ST_NDEB_AUTO = 'S'      
 AND T1.CO_EMPR = T2.CO_EMPR      
 AND T1.CO_CLIE = T2.CO_CLIE      
 AND T1.CO_TIPO_DOCU = T2.CO_TIPO_DOCU      
 AND T1.NU_DOCU_CLIE = T2.NU_DOCU_CLIE      
      
   If @@error <> 0      
      Begin      
        Rollback tran      
        Return      
      End          
      
 Select @VSNU_ASTO = T1.NU_ASTO      
  
 From TMDOCU_CLIE T1, TDCANJ_CLIE T2      
 Where T2.CO_EMPR = @ISCO_EMPR      
 And T2.CO_UNID_CONC = @ISCO_UNID_CONC      
 AND T2.CO_CLIE=  @ISCO_CLIE      
 AND T2.NU_CANJ = @ISNU_CANJ      
 AND T2.FE_CANJ = @IDFE_CANJ      
 AND T2.ST_NDEB_AUTO = 'S'      
 AND T1.CO_EMPR = T2.CO_EMPR      
 AND T1.CO_CLIE = T2.CO_CLIE      
 AND T1.CO_TIPO_DOCU = T2.CO_TIPO_DOCU      
 AND T1.NU_DOCU_CLIE = T2.NU_DOCU_CLIE      
  
  
  
      
 IF Rtrim(Isnull(@VSNU_ASTO, '')) != ''      
   Begin      
  Update TXMVTO_CNTB      
  Set SI_MVTO_CNTB = 'ELI',    
   CO_USUA_MODI = @ISCO_USUA_MODI,       
   FE_USUA_MODI = GETDATE()        
  Where CO_EMPR = @ISCO_EMPR      
  And NU_CNTB_EMPR = 1      
  And CO_UNID_CNTB = @ISCO_UNID_CONC      
  And CO_OPRC_CNTB =  LEFT(@VSNU_ASTO, 3)      
  And NU_ANNO = YEAR(@IDFE_CANJ)      
  And NU_MESE = MONTH(@IDFE_CANJ)      
  And NU_ASTO = '00000' + RIGHT(@VSNU_ASTO, 5)      
      
     If @@error <> 0      
       Begin      
         Rollback tran      
         Return      
       End          
   End      
      
      
 Delete TMDOCU_CLIE      
 From TMDOCU_CLIE T1, TDCANJ_CLIE T2      
 Where T2.CO_EMPR = @ISCO_EMPR      
 And T2.CO_UNID_CONC = @ISCO_UNID_CONC      
 AND T2.CO_CLIE=  @ISCO_CLIE      
 AND T2.NU_CANJ = @ISNU_CANJ      
 AND T2.FE_CANJ = @IDFE_CANJ      
 AND T2.ST_NDEB_AUTO = 'S'      
 AND T1.CO_EMPR = T2.CO_EMPR      
 AND T1.CO_CLIE = T2.CO_CLIE      
 AND T1.CO_TIPO_DOCU = T2.CO_TIPO_DOCU      
 AND T1.NU_DOCU_CLIE = T2.NU_DOCU_CLIE      
      
    Delete TDCANJ_CLIE      
    Where CO_EMPR = @ISCO_EMPR      
 And CO_UNID_CONC = @ISCO_UNID_CONC      
    AND CO_CLIE=  @ISCO_CLIE      
    AND NU_CANJ = @ISNU_CANJ      
    AND FE_CANJ = @IDFE_CANJ      
      
    If @@error <> 0      
       Begin      
         Rollback tran      
         Return      
       End              
      
      
 Insert into  TMREGI_ELIM (CO_EMPR, CO_TABL_ORIG, DE_TABL_ORIG,      
           CO_CLAV_TAOR, CO_USUA_CREA,FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI)       
    select @ISCO_EMPR, 19, 'CABECERA CANJE CLIENTES',      
        RTRIM( @ISCO_EMPR )+ REPLICATE('#', 2-LEN(RTRIM(@ISCO_EMPR)))+       
        RTRIM( @ISCO_CLIE )+ REPLICATE('#', 20-LEN(RTRIM(@ISCO_CLIE)))+      
        RTRIM( @ISNU_CANJ )+ REPLICATE('#', 8-LEN(RTRIM(@ISNU_CANJ))), @ISCO_USUA_MODI,GETDATE(), @ISCO_USUA_MODI, GETDATE()      
 From   TCCANJ_CLIE      
 Where  CO_EMPR = @ISCO_EMPR      
 And CO_UNID_CONC = @ISCO_UNID_CONC      
        AND CO_CLIE=  @ISCO_CLIE      
        AND NU_CANJ = @ISNU_CANJ      
        AND FE_CANJ = @IDFE_CANJ      
      
   If @@error <> 0      
      Begin      
        Rollback tran      
        Return      
      End          
      
  Delete TCCANJ_CLIE      
     Where CO_EMPR = @ISCO_EMPR      
 And CO_UNID_CONC = @ISCO_UNID_CONC      
        AND CO_CLIE=  @ISCO_CLIE      
        AND NU_CANJ = @ISNU_CANJ      
        AND FE_CANJ = @IDFE_CANJ      
  
    If @@error <> 0      
       Begin      
         Rollback tran      
         Return      
       End       
  
  
-- SOLTAR LETRAS EMITIDAS ---     
      
  
UPDATE TCCANJ_CL02  
SET ST_ACEP = 'N',  
NU_ASTO = NULL,  
CO_USUA_MODI = @ISCO_USUA_MODI,  
FE_USUA_MODI = Getdate()  
Where CO_EMPR = @ISCO_EMPR      
And CO_UNID_CONC = @ISCO_UNID_CONC  
AND CO_CLIE=  @ISCO_CLIE      
AND NU_ASTO = @ISNU_CANJ      
AND FE_CANJ = @IDFE_CANJ  
      
    If @@error <> 0      
       Begin      
         Rollback tran      
         Return      
       End          
  
Update  TMLETR_CL02  
Set  CO_ESTA_DOCU = 'EMI',  
CO_USUA_MODI = @ISCO_USUA_MODI,  
FE_USUA_MODI = Getdate()  
From  TMLETR_CL02 T1, TDCANJ_CL02 T2,TCCANJ_CL02 T3   
                Where T2.CO_EMPR =  @ISCO_EMPR  
And  T2.CO_UNID_CONC = @ISCO_UNID_CONC  
And  T2.CO_CLIE = @ISCO_CLIE  
And  T3.NU_ASTO = @ISNU_CANJ  
And  T2.FE_CANJ = @IDFE_CANJ  
And  T2.NU_LETR_CLIE Is Not Null  
And     T1.CO_EMPR = T2.CO_EMPR  
And  T1.CO_CLIE = T2.CO_CLIE  
And  T1.NU_LETR_CLIE = T2.NU_LETR_CLIE  
And     T1.CO_ESTA_DOCU = 'ACE'  
AND     T2.CO_EMPR = T3.CO_EMPR  
AND     T2.CO_UNID_CONC = T3.CO_UNID_CONC  
AND     T2.CO_CLIE = T3.CO_CLIE  
AND     T2.NU_CANJ = T3.NU_CANJ  
AND     T2.FE_CANJ = T3.FE_CANJ  
  
     If @@error <> 0      
       Begin      
         Rollback tran      
         Return      
       End          
  
  
      
Commit Tran      
/*------------------------- Fin ------------------------------*/    

GO
